home *** CD-ROM | disk | FTP | other *** search
- #define OK 1
- #define FAIL 0
- #define bool short
-
- /* ESP Registers: */
- #define ESP_REG_READY 0
- #define ESP_REG_SID 1
- #define ESP_REG_RX1 2
- #define ESP_REG_TX1 3
- #define ESP_REG_RX2 4
- #define ESP_REG_TX2 5
- #define ESP_REG_STATUS1 6
- #define ESP_REG_CMD1 7
- #define ESP_REG_STATUS2 8
- #define ESP_REG_CMD2 9
- #define ESP_DMA_RX 10
- #define ESP_DMA_TX 11
-
-
- /* ESP Registers Offsets */
- #define ESP_REG_READY_OFFS 0x00
- #define ESP_REG_SID_OFFS 0x01
- #define ESP_REG_RX1_OFFS 0x02
- #define ESP_REG_TX1_OFFS 0x02
- #define ESP_REG_RX2_OFFS 0x03
- #define ESP_REG_TX2_OFFS 0x03
- #define ESP_REG_STATUS1_OFFS 0x04
- #define ESP_REG_CMD1_OFFS 0x04
- #define ESP_REG_STATUS2_OFFS 0x05
- #define ESP_REG_CMD2_OFFS 0x05
- #define ESP_DMA_RX_OFFS 0x06
- #define ESP_DMA_TX_OFFS 0x06
-
- /* Bit flags for ESP Registers ESP_REG_READY */
-
- #define ESP_REG_RX1_RDY 0x01
- #define ESP_REG_TX1_RDY 0x02
- #define ESP_REG_RX2_RDY 0x04
- #define ESP_REG_TX2_RDY 0x08
- #define ESP_REG_STATUS1_RDY 0x10
- #define ESP_REG_CMD1_RDY 0x20
- #define ESP_REG_STATUS2_RDY 0x40
- #define ESP_REG_CMD2_RDY 0x80
-
-
- typedef struct esp_reg {
- short reg_offset; /* Offset of register from base address */
- short ready_flag; /* Mask for ready status checking */
- } ESP_Reg;
-
-
- /* ESP Command Codes: */
-
- #define ESP_CMD_RESET 0x00 /* General Commands */
- #define ESP_CMD_GET_SELF_TEST_RES 0x01
- #define ESP_CMD_GET_COMPAT_DIPS 0x02
- #define ESP_CMD_DOWNLOAD_CODE 0x03
-
- #define ESP_CMD_SET_INTR_AND_DMA 0x04 /* Setup Commands */
- #define ESP_CMD_SET_DMA_TIMEOUT 0x05
- #define ESP_CMD_SET_SERVICE_MASK 0x06
- #define ESP_CMD_SET_ERROR_MASK 0x07
- #define ESP_CMD_SET_FLOW_CTRL_TYPE 0x08
- #define ESP_CMD_SET_FLOW_CTRL_CHAR 0x09
- #define ESP_CMD_SET_RX_FIFO_LEVEL 0x0A
- #define ESP_CMD_SET_FIFO_TRIGGER 0x0B
- #define ESP_CMD_SET_RCV_CHAR_TMO 0x0C
- #define ESP_CMD_SET_FLOW_OFF_TMO 0x0D
- #define ESP_CMD_WRITE_TO_UART 0x0E
- #define ESP_CMD_READ_FROM_UART 0x0F
- #define ESP_CMD_SET_BAUD_RATE 0x1D
- #define ESP_CMD_GET_MODE 0x1E
- #define ESP_CMD_SET_MODE 0x10
-
- #define ESP_CMD_CLEAR_DMA_SERV_RQ 0x11 /* Operating Commands */
- #define ESP_CMD_GET_ERROR_STATUS 0x12
- #define ESP_CMD_GET_UART_STATUS 0x13
- #define ESP_CMD_GET_RX_BYTES_AVAIL 0x14
- #define ESP_CMD_GET_TX_BYTES_AVAIL 0x15
- #define ESP_CMD_INIT_DMA_RECEIVE 0x16
- #define ESP_CMD_INIT_DMA_TRANSMIT 0x17
- #define ESP_CMD_FLOW_OFF_LOC_XMIT 0x18
- #define ESP_CMD_FLOW_ON_LOC_XMIT 0x19
- #define ESP_CMD_ISSUE_LINE_BREAK 0x1A
- #define ESP_CMD_FLUSH_RX_FIFO 0x1B
- #define ESP_CMD_FLUSH_TX_FIFO 0x1C
-
-
- /* ESP port qualifier OR'ed with CMD code: */
-
- #define ESP_PORT1 0x00
- #define ESP_PORT2 0x80
-
- #define ESP_MAX_ENH_BAUD 57600L
- #define ESP_MAX_COMP_BAUD 115200L
-
- /* Bit flags for ESP_CMD_GET_SELF_TEST_RES */
- #define ESP_TEST_RAM_FAIL 0x01
- #define ESP_TEST_ROM_FAIL 0x02
- #define ESP_TEST_8K_ROM 0x04
- #define ESP_TEST_MCA_BUS 0x08
- #define ESP_TEST_2_PORT 0x10
-
- /* Bit flags for ESP_CMD_SET_INTR_AND_DMA */
- /* choose one from each group below: */
- #define ESP_SET_ENH_INTR_ON 0x01
-
- #define ESP_SET_ENH_IRQ9 0x00
- #define ESP_SET_ENH_IRQ3 0x02
- #define ESP_SET_ENH_IRQ4 0x04
- #define ESP_SET_ENH_IRQ5 0x06
-
- #define ESP_SET_DMA_OFF 0x00
- #define ESP_SET_DMA1 0x10
- #define ESP_SET_DMA3 0x30
-
- /* Bit flags for ESP_CMD_SET_SERVICE_MASK */
- #define ESP_SERV_PORT1_RX_FIFO 0x01
- #define ESP_SERV_PORT1_TX_FIFO 0x02
- #define ESP_SERV_PORT1_ERROR 0x04
- #define ESP_SERV_DMA_TERMINATE 0x08
- #define ESP_SERV_PORT2_RX_FIFO 0x10
- #define ESP_SERV_PORT2_TX_FIFO 0x20
- #define ESP_SERV_PORT2_ERROR 0x40
- #define ESP_SERV_DMA_TIMEOUT 0x80
-
- /* Bit flags for ESP_CMD_SET_ERROR_MASK: Byte 1 */
- #define ESP_ERR_RCV_CHAR_TMO 0x01
- #define ESP_ERR_RCV_FIFO_OVERFLOW 0x02
- #define ESP_ERR_PARITY_ERROR 0x04
- #define ESP_ERR_FRAMING_ERROR 0x08
- #define ESP_ERR_BREAK_DETECT 0x10
- #define ESP_ERR_UART_STATUS 0x20
- #define ESP_ERR_FLOWED_OFF_TMO 0x40
- #define ESP_ERR_BREAK_XMIT_DONE 0x80
- #define ESP_ERR_ALL_BYTE_1 0xFF
-
- /* Bit flags for ESP_CMD_SET_ERROR_MASK: Byte 2 */
- #define ESP_ERR_REMOTE_TX_F_OFF 0x01
- #define ESP_ERR_LOCAL_TX_F_OFF 0x02
- #define ESP_ERR_LOCAL_TX_F_ON 0x04
- #define ESP_ERR_ALL_BYTE_2 0x07
-
- /* Bit flags for ESP_CMD_GET/SET_MODE */
- #define ESP_MODE_ENHANCED 0x01
- #define ESP_MODE_COMP_UART_FIFO 0x02
- #define ESP_MODE_COMP_RTS_FLOW 0x04
- #define ESP_MODE_COMP_DTR_FLOW 0x08
- #define ESP_MODE_ENH_RX_DMA 0x10
- #define ESP_MODE_ENH_TX_DMA 0x20
-
- typedef struct esp_handle {
- short base_addr; /* Base address of ESP registers */
- short uart_addr; /* Base address of NS16550 UART */
- short dma; /* DMA channel number 0-9 */
- short irq; /* IRQ level */
- short esp_no; /* Which ESP board */
- short port; /* Which port on the ESP board */
- } ESP_Handle;
-